package com.ylr.blog.framework.service;

import com.ylr.blog.framework.entity.BlogTagRelationEntity;
import com.ylr.base.common.dto.NameValue;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wyw
 * date: 2023-05-23 11:38:53
 * className: BlogTagRelationService
 * version: 1.0
 * description:
 */
public interface BlogTagRelationService extends IService<BlogTagRelationEntity> {

    /**
     * 保存博客关联博客标签操作
     * @param blogId    博客主键
     * @param tagIdList 博客标签主键列表
     */
    void saveBlogTagRelation(Long blogId, List<Long> tagIdList);

    /**
     * 复制博客关联的博客标签操作
     * @param fromBlogId   博客主键（来源）
     * @param targetBlogId 博客主键（去向）
     */
    void copyBlogTagRelation(Long fromBlogId, Long targetBlogId);

    /**
     * 获取博客关联的博客标签主键列表操作
     * @param blogId 博客主键
     * @return 博客标签主键列表
     */
    List<Long> getTagIdList(Long blogId);

    /**
     * 获取博客关联的博客标签列表操作
     * @param blogId 博客主键
     * @return 博客标签列表
     */
    List<NameValue<String>> getBlogTagList(Long blogId);

    /**
     * 删除博客关联的博客标签操作
     * @param blogId 博客主键
     */
    void deleteBlogTagRelation(Long blogId);

    /**
     * 删除博客关联的博客标签操作
     * @param blogIdList 博客主键列表
     */
    void removeBlogTagRelation(List<Long> blogIdList);

}

